草庐IT

java treeset 抛出 illegalArgumentException : key out of range

全部标签

c++ - Valgrind 没有抛出错误,但并非所有堆分配都已被释放

这是我用Valgrind执行我的程序后得到的:1jscherman@jscherman:~/ClionProjects/algo2-t4-tries$g++Set.hpptests.cppDiccString.hpp&&valgrind--leak-check=yes--show-leak-kinds=all./a.out2==6823==Memcheck,amemoryerrordetector3==6823==Copyright(C)2002-2015,andGNUGPL'd,byJulianSewardetal.4==6823==UsingValgrind-3.11.0andLi

c++ - C++如何像Java Spring Assert一样检查条件并抛出异常

有没有标准的方法来做这样的事情?可用于Release模式(NDEBUG定义)检查失败时抛出异常。最好使用标准库或boost。为了清楚起见,我在这里使用的“断言”(可能是不同的术语)特别是关于运行时问题,而不是编程问题,例如SpringAssert。在Java世界中。Microsoft.VisualStudio.TestTools.CppUnitTestFramework是很好的候选人,但它是为了测试目的。 最佳答案 在我的一些项目中我使用:voidASSERT(constboolcond,conststd::string&text)

c++ - Concurrent_hash_map 实现抛出 SIGSEGV

我正在尝试使用tbb的concurrent_hash_map来提高我的应用程序的并发性能。阅读它并根据我的应用程序实现它,但我看到崩溃..因此,我的应用程序是一个多线程应用程序,我在其中存储对,键是char*,值是整数。伪代码如下所示:在.h文件中,typedeftbb::concurrent_hash_maptbb_concurrent_hash;tbb_concurrent_hashconcurrent_hash_table;tbb_concurrent_hash::accessorwrite_lock;tbb_concurrent_hash::const_accessorread

c++ - glTexImage3D 抛出错误 1282(无效操作)

我正在尝试通过OpenGL将体积数据作为3D纹理上传。但是,当通过glTexImage3D指定格式和数据本身时,会抛出GL_INVALID_OPERATION错误。代码(包括我添加的用于找出错误来源的调试代码)如下:voidTexture3D::upload(){std::cout我认为它可能是我在glTexImage3D中指定的任何格式、内部格式或像素格式的GL_INVALID_VALUE,但是我已经检查了glTexImage3D的文档一切似乎都是正确的。我创建了一个最小的、可验证的示例(使用GLFW和GLEW)#include#include#includeGLFWwindow*_

c++ - 在 Visual C++ 程序中每次抛出异常时,如何运行一些代码?

如果在C++程序中抛出异常,控制将转移到异常处理程序或调用terminate()。即使程序从处理程序内部(或从terminate()处理程序)发出一些可能为时已晚的诊断-大多数值在调用堆栈中的异常点抛出,不在处理程序中。在Windows上,可以使用[StackWalk64()]获取调用堆栈1功能。关键是如何在正确的时刻调用该函数。有没有办法让VisualC++程序在每次抛出异常(或未设置处理程序的异常)时执行一些用户代码? 最佳答案 如果您想在抛出SEH异常时执行操作,例如发生访问冲突时,那么您可以简单地捕获SEH异常(使用__fi

c++ - g++ 可以检查抛出说明符吗?

关于这个的两个问题:有没有办法强制g++忽略throw说明符?(例如,我记得,VisualStudio会忽略抛出说明符,这与throw()不同)是否有可能强制g++检查抛出说明符是否正确-我的意思是检查(这可以通过one-passcompilers完成)函数是否具有throwspecifiers调用函数,可能只是通过观察他们的throwspecifiers和观察执行throw异常,这将违反说明符?(注意:这不应该监视没有抛出说明符的函数,因为这可能会导致大量警告)编辑:我将为我的第二个问题添加一些示例。假设我们有://sorryforthecodingstylehere,butIdon

c++ - 抛出并捕获 std::string

我编写了奇怪的代码,但令人惊讶的是它有效。但是现在我不知道我扔的是什么,我该如何接住它:classDate{private:intday;intmonth;intyear;intdaysPerMonth[];public:Date(intday,intmonth,intyear){intdaysPerMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};if(isValidDate(day,month,year)){this->day=day;this->month=month;this->year=year;}else{throwstd::s

c++ - 构造函数中抛出的异常 : is the destructor called?

这个问题在这里已经有了答案:Whatdestructorsarerunwhentheconstructorthrowsanexception?(3个答案)关闭8年前。如果在对象的构造函数中抛出异常,那么是否会调用析构函数?还是未定义的行为?(这就是为什么我不愿意说出我的编译器做了什么。)structfoo(){foo(){throw"bar";}~foo(){/*amIcalled*/}};foof;

c++ - 如何让 wstring_convert::to_bytes 抛出 range_error 异常?

我正在使用std::wstring_convert将wstring转换为多字节字符串,如下所示://convertfromwidechartomultibytechartry{returnstd::wstring_convert>().to_bytes(wideMessage);}//thrownbystd::wstring_convert.to_bytes()forbadconversionscatch(std::range_error&exception){//dosomething...}为了对我评论为dosomething...的block进行单元测试,我希望传递一个将引发st

c++ - 为什么在抛出 'std::bad_alloc' 实例后调用终止?

每1秒,函数工作一次。我的系统是linux。奔跑突然死亡。-----global-------staticintarrayNum[33000];-------------------function(){unsignedshortint**US_INT;US_INT=newunsignedshortint*[255];for(inti=0;i程序停止。和留言↓在抛出“std::bad_alloc”的实例后终止调用what():std::bad_alloc 最佳答案 bad_alloc异常是由内存分配失败触发的(因此您的new之一)。